package com.agua.enturno.servicios;

import com.agua.enturno.excepciones.ExcepcionDeReglaDelNegocio;
import com.agua.enturno.vista.dto.NotificacionDTO;
import com.agua.enturno.vista.dto.UsuarioDTO;
import com.agua.enturno.vista.dto.UsuarioDeSessionDTO;
import org.joda.time.DateTime;

import java.util.List;


public interface UsuarioService {

	UsuarioDTO findById(Long id);
	
	UsuarioDTO findByUsername(String username);
	
	List<NotificacionDTO> findNotificaciones(Long usuarioId);

	UsuarioDeSessionDTO authenticate(String username, String password) throws ExcepcionDeReglaDelNegocio;
	
	void updateLastLogin(Long usuarioId, DateTime lastLogin);
	
	void crearUsuario(UsuarioDTO usuarioDTO) throws ExcepcionDeReglaDelNegocio;
	
}
